package fr.upstlse.glre.client.controler;

import java.util.Collection;
import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;

import fr.upstlse.glre.client.vo.actualite.ActualiteSearchCriteriaVOGWT;
import fr.upstlse.glre.client.vo.actualite.ActualiteVOGWT;
import fr.upstlse.glre.client.vo.depot.DocumentVOGWT;
import fr.upstlse.glre.client.vo.depot.LibelleVOGWT;
import fr.upstlse.glre.client.vo.vitrine.PageVitrineVOGWT;

public interface ControlerServiceAsync {

	public void addDocument(DocumentVOGWT pDocument, AsyncCallback<Long> pCallback);
	public void deleteDocument(long pDocumentId, AsyncCallback<Object> pCallback);
	public void deleteDocument(DocumentVOGWT pDocumentVOGWT, AsyncCallback<Object> pCallback);
	
	public void createLibelle(LibelleVOGWT pLibelleVOGWT, AsyncCallback<Long> pCallback);
	public void updateLibelle(LibelleVOGWT pLibelleVOGWT, AsyncCallback<Object> pCallback);
	public void deleteLibelle(LibelleVOGWT pLibelleVOGWT, AsyncCallback<Object> pCallback);
	public void getAllDocuments(AsyncCallback<Collection<DocumentVOGWT>> pCallback);
	public void getAllLibelles(AsyncCallback<Collection<LibelleVOGWT>> pCallback);
	public void getAllPageVitrine(AsyncCallback<PageVitrineVOGWT[]> pCallback);
	public void createPageVitrine(PageVitrineVOGWT pPageVitrineVOGWT, AsyncCallback<Long> pCallback);
	public void updatePageVitrine(PageVitrineVOGWT pPageVitrineVOGWT, AsyncCallback<Object> pCallback);
	
	public void getEmploiDuTemps(AsyncCallback<String> pCallback);
	
	public void findActualite(ActualiteSearchCriteriaVOGWT pActualiteSearchCriteriaVOGWT, AsyncCallback<List<ActualiteVOGWT>> pCallback);
	public void createActualite(ActualiteVOGWT pActualiteVOGWT, AsyncCallback<Long> pCallback);
	public void updateActualite(ActualiteVOGWT pActualiteVOGWT, AsyncCallback<Object> pCallback);
	public void deleteActualite(long pId, AsyncCallback<Object> pCallback);
	public void getAllActualite(AsyncCallback<List<ActualiteVOGWT>> pCallback);
}
